package com.spzx.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.spzx.product.api.domain.vo.SkuLockVo;
import com.spzx.product.api.domain.vo.SkuStockVo;
import com.spzx.product.domain.SkuStock;

import java.util.List;

/**
 * @ClassName SkuStockService
 * @Author 波
 * @Date 2024/7/30 16:15
 */
public interface SkuStockService extends IService<SkuStock> {
    /**
     * 获取SkuStockVo信息
     * @param skuId
     * @return
     */
    SkuStockVo getSkuStockVo(Long skuId);

    /**
     * 校验并锁定库存
     * @param orderNo
     * @param skuLockVoList
     * @return
     */
    String checkAndLock(String orderNo, List<SkuLockVo> skuLockVoList);

    /**
     * 解锁库存
     * @param orderNo
     */
    void unLockSkuStock(String orderNo);

    /**
     * 扣减库存
     * @param orderNo
     */
    void minusSkuStock(String orderNo);
}
